package com.gql.mybatisplustest.MyMetaObjectHandler;

import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;

import java.util.Date;

/**
 * @Description: 自动填充:实现元对象处理器
 * @author Guoqianliang
 * @date 16:07 - 2021/4/1
 */
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {
    /**
     * mp执行添加时,执行此方法
     * @param metaObject
     */
    @Override
    public void insertFill(MetaObject metaObject) {
        /**
         * 参数1:类属性(字段)名称
         * 参数2:值
         * 参数3:对象
         */
        this.setFieldValByName("createTime", new Date(), metaObject);
        this.setFieldValByName("updateTime", new Date(), metaObject);
        this.setFieldValByName("version", 1, metaObject);
        this.setFieldValByName("deleted", 0, metaObject);
    }

    /**
     * mp执行修改时,执行此方法
     * @param metaObject
     */
    @Override
    public void updateFill(MetaObject metaObject) {
        this.setFieldValByName("updateTime", new Date(), metaObject);
    }
}
